[lambda][rule] classifier nested type conversion bug #456
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
to: @jacknagz
cc: @airbnb/streamalert-maintainers
size: small
resolves N/A
Background
Discovered an issue with nested type conversion where the schema would still pass even if a value of a nested key was not of the right type.
logs.json
:streamalert:envelope_keys
is used and this log goes through classifying, the resulting log will look something like:In the above schema definition (# 1) if you change the
"host"
key's value within"envelope_keys"
to"integer"
, the parsing of this log will succeed, but will log the following error:StreamAlert [ERROR]: Invalid schema. Value for key [host] is not an int: host_name
Changes
StreamClassifier._convert_type
from within the method.Testing
Adding unit test to validate that a failed type conversion of a nested value will result in a classification failure.